home *** CD-ROM | disk | FTP | other *** search
/ ftp.mactech.com 2010 / ftp.mactech.com.tar / ftp.mactech.com / thinkref / archive / THINKPascalUH2.1.sea / THINKPas Univ Hdr 2.1 / Interfaces / Retrace.p < prev    next >
Text File  |  1995-09-12  |  3KB  |  110 lines

  1. { Converted with MPW2TPas Tuesday, September 12, 1995 9:23:02 PM }
  2. {
  3.      File:        Retrace.p
  4.  
  5.      Contains:    Vertical Retrace Interfaces.
  6.  
  7.      Version:    Technology:    System 7.5
  8.                  Package:    Universal Interfaces 2.1 in “MPW Latest” on ETO #18
  9.  
  10.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  11.                  All rights reserved.
  12.  
  13.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  14.                  stack.  Include the file and version information (from above)
  15.                  in the problem description and send to:
  16.                      Internet:    apple.bugs@applelink.apple.com
  17.                      AppleLink:    APPLE.BUGS
  18.  
  19. }
  20.  
  21.  UNIT Retrace;
  22.  INTERFACE
  23.  
  24.  
  25. {$IFC UNDEFINED __RETRACE__}
  26. {$SETC __RETRACE__ := 1}
  27.  
  28.   USES
  29.    ConditionalMacros, Types, OSUtils;
  30.  
  31. { $PUSH}
  32. { $ALIGN MAC68K}
  33. { $LibExport+}
  34.     
  35. TYPE
  36.     VBLTaskPtr = ^VBLTask;
  37.  
  38.     {
  39.         VBLProcPtr uses register based parameters on the 68k and cannot
  40.         be written in or called from a high-level language without the help of
  41.         mixed mode or assembly glue.
  42.  
  43.         In:
  44.          => vblTaskPtr      A0.L
  45.     }
  46.     VBLProcPtr = Register68kProcPtr;  { register PROCEDURE VBL(vblTaskP: VBLTaskPtr); }
  47.     VBLUPP = UniversalProcPtr;
  48.  
  49.     VBLTask = RECORD
  50.         qLink:                    QElemPtr;
  51.         qType:                    INTEGER;
  52.         vblAddr:                VBLUPP;
  53.         vblCount:                INTEGER;
  54.         vblPhase:                INTEGER;
  55.     END;
  56.  
  57. CONST
  58.     uppVBLProcInfo = $00009802; { Register PROCEDURE (4 bytes in A0); }
  59.  
  60. FUNCTION NewVBLProc(userRoutine: VBLProcPtr): VBLUPP;
  61.     {$IFC NOT GENERATINGCFM }
  62.     INLINE $2E9F;
  63.     {$ENDC}
  64.  
  65. PROCEDURE CallVBLProc(vblTaskP: VBLTaskPtr; userRoutine: VBLUPP);
  66.     {$IFC NOT GENERATINGCFM}
  67.     {To be implemented:  Glue to move parameters into registers.}
  68.     {$ENDC}
  69.  
  70. FUNCTION GetVBLQHdr: QHdrPtr;
  71.     {$IFC NOT GENERATINGCFM}
  72.     INLINE $2EBC, $0000, $0160;
  73.     {$ENDC}
  74. FUNCTION SlotVInstall(vblBlockPtr: QElemPtr; theSlot: INTEGER): OSErr;
  75.     {$IFC NOT GENERATINGCFM}
  76.     INLINE $301F, $205F, $A06F, $3E80;
  77.     {$ENDC}
  78. FUNCTION SlotVRemove(vblBlockPtr: QElemPtr; theSlot: INTEGER): OSErr;
  79.     {$IFC NOT GENERATINGCFM}
  80.     INLINE $301F, $205F, $A070, $3E80;
  81.     {$ENDC}
  82. FUNCTION AttachVBL(theSlot: INTEGER): OSErr;
  83.     {$IFC NOT GENERATINGCFM}
  84.     INLINE $301F, $A071, $3E80;
  85.     {$ENDC}
  86. FUNCTION DoVBLTask(theSlot: INTEGER): OSErr;
  87.     {$IFC NOT GENERATINGCFM}
  88.     INLINE $301F, $A072, $3E80;
  89.     {$ENDC}
  90. FUNCTION VInstall(vblTaskPtr: QElemPtr): OSErr;
  91.     {$IFC NOT GENERATINGCFM}
  92.     INLINE $205F, $A033, $3E80;
  93.     {$ENDC}
  94. FUNCTION VRemove(vblTaskPtr: QElemPtr): OSErr;
  95.     {$IFC NOT GENERATINGCFM}
  96.     INLINE $205F, $A034, $3E80;
  97.     {$ENDC}
  98. {}
  99. { Custom Glue for 68k.}
  100. {}
  101.  
  102. { $ALIGN RESET}
  103. { $POP}
  104.  
  105. {$ENDC} {__RETRACE__}
  106.  
  107.  IMPLEMENTATION
  108.  END.
  109.  
  110.